#ifndef CONCRETESTRATEGY_HPP_
#define CONCRETESTRATEGY_HPP_

#include "Strategy.hpp"

class Plane :public Transport
{
public:
  Plane(unsigned int fee)
    :Transport(std::string("飞机"), fee)
  {}

  void Display()
  {
    std::cout << "乘坐飞机去旅游" << std::endl;
  }

  ~Plane(){}
};

class Bus :public Transport
{
  public:
    Bus(unsigned fee)
      :Transport(std::string("公交车"), fee)
    {}

    void Display()
    {
      std::cout << "坐公交去旅行" << std::endl;
    }

    ~Bus(){}
};

class Subway :public Transport
{
  public:
    Subway(unsigned int fee)
      :Transport(std::string("地铁"), fee)
    {}

    void Display()
    {
      std::cout << "坐地铁去旅游" << std::endl;
    }
    
    ~Subway(){}
};

class Bike :public Transport
{
public:
  Bike(unsigned int fee)
    :Transport(std::string("Biek"), fee)
  {}

  void Display()
  {
    std::cout << "骑自行车去旅游" << std::endl;
  }

  ~Bike(){}
};

class Ship :public Transport
{
  public:
    Ship(unsigned int fee)
      :Transport(std::string("轮船"), fee)
    {}

    void Display()
    {
      std::cout << "坐船去旅游" << std::endl;
    }

    ~Ship(){}
};

#endif
